{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1-线性SVM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import sklearn.svm\n",
    "import seaborn as sns\n",
    "import scipy.io as sio\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dict_keys(['__header__', '__version__', '__globals__', 'X', 'y'])\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>X1</th>\n",
       "      <th>X2</th>\n",
       "      <th>y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.9643</td>\n",
       "      <td>4.5957</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2.2753</td>\n",
       "      <td>3.8589</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2.9781</td>\n",
       "      <td>4.5651</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2.9320</td>\n",
       "      <td>3.5519</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3.5772</td>\n",
       "      <td>2.8560</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       X1      X2  y\n",
       "0  1.9643  4.5957  1\n",
       "1  2.2753  3.8589  1\n",
       "2  2.9781  4.5651  1\n",
       "3  2.9320  3.5519  1\n",
       "4  3.5772  2.8560  1"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mat = sio.loadmat('./data/ex6data1.mat')\n",
    "print(mat.keys())\n",
    "data = pd.DataFrame(mat.get('X'), columns=['X1', 'X2'])\n",
    "data['y'] = mat.get('y')\n",
    "\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# visualize data\n",
    "pay attention to the edge case at the left hand side"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nXOb/A6eJn+IhyAuBAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xbaa8a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(8,6))\n",
    "ax.scatter(data['X1'], data['X2'], s=50, c=data['y'], cmap='Reds')\n",
    "ax.set_title('Raw data')\n",
    "ax.set_xlabel('X1')\n",
    "ax.set_ylabel('X2')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# try $C=1$\n",
    "http://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html#sklearn.svm.LinearSVC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.98039215686274506"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc1 = sklearn.svm.LinearSVC(C=1, loss='hinge')\n",
    "svc1.fit(data[['X1', 'X2']], data['y'])\n",
    "svc1.score(data[['X1', 'X2']], data['y'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "data['SVM1 Confidence'] = svc1.decision_function(data[['X1', 'X2']])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xbeb1710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(8,6))\n",
    "ax.scatter(data['X1'], data['X2'], s=50, c=data['SVM1 Confidence'], cmap='RdBu')\n",
    "ax.set_title('SVM (C=1) Decision Confidence')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# try $C=100$\n",
    "with large C, you try to overfit the data, so the left hand side edge case now is categorized right"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.90196078431372551"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc100 = sklearn.svm.LinearSVC(C=100, loss='hinge')\n",
    "svc100.fit(data[['X1', 'X2']], data['y'])\n",
    "svc100.score(data[['X1', 'X2']], data['y'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "data['SVM100 Confidence'] = svc100.decision_function(data[['X1', 'X2']])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeEAAAFyCAYAAADCuGLjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8VNX9P/7XvXf2zGQfAghhk01QURAFRGQREBBQhLAU\ntWJFi7XqRwv4sXzEpf74tdW6otj68VPXutVK0SqKu4jgggRFIOwhgezJ7HPvPd8/IgMhMwmBZO7M\n5PV8PPqoOSfJfZ9MyGvOuefeKwkhBIiIiCjuZKMLICIiaq8YwkRERAZhCBMRERmEIUxERGQQhjAR\nEZFBGMJEREQGYQiTYb777jvMnz8fl112GaZMmYLrrrsOO3bsAADMnz8fTz31VKOveeaZZ3DDDTfg\nwIED6Nu3L+bNm9foc5YuXYq+ffuisrIy6nF//PFHLF26NPLxN998gwULFmDatGmYMmUKrr/+emzf\nvv2ExyGEwJIlS/C3v/0t0qZpGu677z5MnDgRl1xyCV566aVI3549ezB37lxMmjQJV155JYqKigAA\npaWlWLRoEXRdj3qcMWPGYMKECZg2bRqmTp2KyZMn489//jNUVT3hWo/38MMP480332zyc6ZNm4ba\n2tqTPsbxioqK8Jvf/AaXXXYZpk6dil/84hfYtGnTKX3Pzz77DKNHj8aMGTPw4osvYtWqVVE/75xz\nzsGBAwdO6VhErUoQGSAYDIqhQ4eKwsLCSNubb74pRo0aJVRVFe+8844YP358o6+bMGGC+PTTT8X+\n/fvFmWeeKYYPHy4OHDgQ6fd6veKSSy4Rffr0ERUVFY2+XtM0cfnll4vS0lIhhBBfffWVGDVqlNiy\nZUvkc/71r3+JoUOHRv364+3cuVPMnz9fnHXWWeKvf/1rpP35558X1113nQiHw6K6ulpMmDBBbN68\nWQghxIwZM8Rbb70lhBDio48+EpMmTRK6rgshhHj00UfFc889F/VYo0ePFt9//32Dsd54443innvu\nabbORFFUVCRGjBghPvnkk0jbF198IQYPHiy2b99+0t93yZIl4vHHH2/28wYNGiT2799/0scham0m\no98EUPvk9/tRV1cHn88XaZs6dSqcTic0TcO4ceNw//33Y9OmTRgyZAgA4KuvvoIQAiNGjEBxcTEU\nRcGll16K1atX44YbbgAAvPfeexg7diyeeeaZqMd955130KVLF+Tl5QEAHnnkEfz617/GwIEDG9Rh\ntVqhaRq++OILrFixotH3uf322zFy5Ei88MILuOKKK9C5c+cG/e+//z5mzZoFk8mEjIwMTJ48GW+9\n9Rby8vKwa9cuTJ48GQAwatQoLF++HD/88AMGDBiAmTNn4sorr8SsWbNgsVia/Bk6HA4sW7YM48aN\nw6233gqn04lXX30VL730EnRdR2ZmJn7/+9+jV69e8Hq9uO+++/DNN99AUZTI1yxduhS9e/fGggUL\n8Mgjj2Dt2rUwm83IysrCAw88gA4dOqBv375Yv349srOz8fjjj2PNmjVQFAU9evTA73//e7jdbsyf\nPx+DBg3CN998g5KSEgwePBgrVqyALDdcbHv66acxY8YMjBw5MtI2bNgw/PnPf4bNZov87B577DFo\nmgan04mlS5firLPOwqOPPori4mKUlZWhuLgY2dnZeOihh7B69Wp88MEHsFqtqKurg8PhQFVVFZYt\nW4ZNmzbh3nvvhSRJOPPMMxusMqxbtw4rV65EOByGzWbD4sWLcc4558Q8Tl5eHnbv3o1ly5ahsrIS\nsizjxhtvxKRJk3Do0CHcc889KCkpQTgcxuTJkyO/k0RNMvpdALVfzzzzjDjrrLPEmDFjxO233y5e\nffVV4fP5Iv2PPvqoWLx4ceTj2267TTz77LNCCCH2798vBg0aJLZs2SIuvfTSyOdcffXV4qeffoo5\nE/7Nb34jXn/99cjHgwYNEjt27DjlsSxevLjBTHjChAni22+/jXz8yiuviEWLFolvv/1WTJgwocHX\nzp49W7z//vuRj6+44gqxfv36Rsc4fiZ8xPnnny82b94sNmzYIObOnRv5GX766aeRn80f/vAHceut\ntwpVVUUwGBTz5s0TX375ZaTugwcPinPPPVcEg0EhhBB/+9vfxNq1a4UQIvKzfO2110RBQYHwer1C\nCCEeeeQRce211wohhPjFL34hbr75ZqFpmqirqxMXXnhh1DFMmTJFfPTRRzF/jjt37hTDhw8X+/bt\nE0LUz5JHjBgh6urqxCOPPCLGjh0r6urqhBBCLFy4UDz88MONfv6PPPKIWL58uQgGg2L48OHiiy++\nEEIIsXr1atGnTx+xf/9+sXv3bjFlyhRRWVkphBBi+/btYsSIEcLr9TZ5nOnTp4vnn39eCCHEwYMH\nI583f/588cEHHwghhAgEAmL+/PlizZo1McdJdARnwmSYX/7yl5g5cyY2btyIjRs34umnn8bTTz+N\n1157DS6XC7NmzcLkyZPh8Xigqio+++wz3H333Q2+x8CBAyHLMgoLC5GTkwOv14s+ffrEPOauXbtw\n1VVXRT6WZTnmOVgAzc6EYxFR7gbb1LEURYn8d35+Pnbv3o0LLrgg5vc/liRJsNvt+M9//oO9e/di\n9uzZkb6amhpUV1fjiy++wNKlS6EoChRFwfPPPw8A+Oc//wkAyMvLQ79+/XD55ZfjoosuwkUXXYRh\nw4Y1OM4nn3yCK664Ag6HAwBw1VVX4cknn0QoFAIAjB49GrIsw+l0olu3bqipqYlaa1M/7y+//BIX\nXHABunbtCqB+lpydnY3CwkIAwNChQ+F0OgEAZ5xxRtRjHLF9+3aYTKbIOKZMmYJly5YBAD7//HMc\nPnwY11xzTYPa9u3bF/M41dXV2LZtG2bOnAkA6NSpE95//334fD5s3LgRNTU1ePjhhwEAPp8P27Zt\nw6RJk2LWRwQADGEyxNdff41vv/0W1113HUaPHo3Ro0fjtttuw2WXXYbPP/8cEydORIcOHTB8+HC8\n/fbb8Pl8mDBhAlwuV6PvNXXqVLz11lvIzs7GtGnTmjzu8SEwaNAgbN68uVFwL1++HJdccgmGDx+O\nf/3rXy0eX6dOnVBWVhb5+NChQ+jYsSM6d+6M8vJyCCEgSVKDviM0TWsQyk0pLi6Gz+dDfn4+dF3H\ntGnTcMcddwAAdF3H4cOHkZGRAZPJFDkeAJSUlESWf4H6NwjPP/88tmzZgvXr1+MPf/gDzj//fNx1\n112Rzzn+jYWu6w02hR37/SRJivpGZNCgQfjuu+8wevToBu2PPfYY8vPzo36NECJynBM5RlP9JpMp\nUvuwYcPwl7/8JdJXUlKCDh06YO3atVGPc+Rrj/057tq1C263G0IIvPzyy7Db7QCAyspKWK3WmLUR\nHcHd0WSI7OxsrFy5ssGu2LKyMvj9/gaBOHfuXKxevRpvvvlm1J3QQP3u3f/85z94++23MWXKlCaP\n26NHD+zfvz/y8Y033ojHHnssMtMCgDfeeAPvvvtukzPq5owdOxavv/46VFVFbW0t1qxZg3HjxqFj\nx47Iz8/H22+/DQD49NNPIctyg2MdOHAAPXv2bPYYtbW1uPfeezFv3jxYrVaMGDECa9asweHDhwEA\nL730Eq6++moA9TPKf/7zn9B1HaFQCDfffDM2btwY+V7btm3DlClT0KtXLyxcuBDXXHMNfvrppwbH\nu/DCC/HGG29EzuM/99xzOO+885o9d32sBQsW4NVXX8Vnn30Wafvkk0/w3HPPoV+/frjgggvw+eef\nR16j9evXo6SkBGefffYJH+OIPn36QAiBjz/+GADwwQcfRGbOR45zZGf6xx9/jKlTpyIYDMb8fk6n\nEwMGDIjsJi8pKcGcOXMQCAQwaNAg/O///i+A+tdlzpw5+OCDD1pcM7U/nAmTIXr06IHHH38cDz30\nEEpLS2G1WuFyuXDPPfc0CKDzzz8f9913HzIyMtC3b9+o3ysvLw+9evWCy+VCZmZmk8edMGEC1q5d\nixkzZgAAhgwZgvvuuw/3338/fD4fwuEw8vPz8fe//x25ubknPb45c+Zg3759mDZtGsLhMAoKCjB0\n6FAAwIMPPojf//73WLlyJSwWCx5++OHIBqby8nJUVFTg3HPPjfp9b7/9dthsNiiKAk3TMH78eNx4\n440AgJEjR+JXv/oVrr32WkiSBKfTicceewySJOGmm27C/fffj2nTpkHTNEyaNAnjx4/HunXrAAD9\n+vXDpZdeihkzZsDhcMBmszWYBQPAlVdeiZKSEsycORO6rqNbt27405/+1KKfS7du3fDkk0/iL3/5\nC1asWAFd1yNvyI68Efmf//kf3HTTTdA0DTabDU8++WTUFZDmmM1mPP7447j77rvx4IMPon///sjJ\nyQEA9O7dG/fccw9uu+22yCx35cqVkaX2WP785z9j+fLleO655yBJEu6//3643W786U9/wr333ovL\nLrsMoVAIU6ZMwdSpU1tcM7U/kmhqPYcoxWiahiuuuAKrVq2K7JBOJI8++iiys7NjzvqJKLVwOZra\nFUVRcO+99+LBBx80upRGSkpKsHXr1gYbq4gotXEmTEREZBDOhImIiAzCECYiIjIIQ5iIiMggcb9E\nqaysrkWfn5XlQFWVr/lPTBKpNJ5UGguQWuNJpbEAqTWeVBoLkFrjacuxuN3RL7NL+JmwyXRidw5K\nFqk0nlQaC5Ba40mlsQCpNZ5UGguQWuMxYiwJH8JERESpiiFMRERkEIYwERGRQRjCREREBmEIExER\nGYQhTEREZBCGMBERkUEYwkRERAZhCBMRERmEIUxESUUIgeKyGpRWtuwWuESJKO73jiYiOlkffrMT\nT/7rS2zZVQpFlnBO7864eeZIDOnbxejSiE4KZ8JESS4Y1lBc6UMgpBldSpvatvcw/vvp/+Cb7cUI\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xc169588>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(8,6))\n",
    "ax.scatter(data['X1'], data['X2'], s=50, c=data['SVM100 Confidence'], cmap='RdBu')\n",
    "ax.set_title('SVM (C=100) Decision Confidence')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>X1</th>\n",
       "      <th>X2</th>\n",
       "      <th>y</th>\n",
       "      <th>SVM1 Confidence</th>\n",
       "      <th>SVM100 Confidence</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.9643</td>\n",
       "      <td>4.5957</td>\n",
       "      <td>1</td>\n",
       "      <td>0.800003</td>\n",
       "      <td>5.026242</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2.2753</td>\n",
       "      <td>3.8589</td>\n",
       "      <td>1</td>\n",
       "      <td>0.382517</td>\n",
       "      <td>3.031032</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2.9781</td>\n",
       "      <td>4.5651</td>\n",
       "      <td>1</td>\n",
       "      <td>1.375121</td>\n",
       "      <td>6.237475</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2.9320</td>\n",
       "      <td>3.5519</td>\n",
       "      <td>1</td>\n",
       "      <td>0.520583</td>\n",
       "      <td>2.881231</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3.5772</td>\n",
       "      <td>2.8560</td>\n",
       "      <td>1</td>\n",
       "      <td>0.334315</td>\n",
       "      <td>1.451202</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       X1      X2  y  SVM1 Confidence  SVM100 Confidence\n",
       "0  1.9643  4.5957  1         0.800003           5.026242\n",
       "1  2.2753  3.8589  1         0.382517           3.031032\n",
       "2  2.9781  4.5651  1         1.375121           6.237475\n",
       "3  2.9320  3.5519  1         0.520583           2.881231\n",
       "4  3.5772  2.8560  1         0.334315           1.451202"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
